11. Quiz: Aggregates in Window Functions
Aggregates in Window Functions with and without ORDER BY
Run the query that Derek wrote in the previous video in the first SQL Explorer below. Keep the query results in mind; you'll be comparing them to the results of another query next.
SELECT id,
account_id,
standard_qty,
DATE_TRUNC('month', occurred_at) AS month,
DENSE_RANK() OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS dense_rank,
SUM(standard_qty) OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS sum_std_qty,
COUNT(standard_qty) OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS count_std_qty,
AVG(standard_qty) OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS avg_std_qty,
MIN(standard_qty) OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS min_std_qty,
MAX(standard_qty) OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS max_std_qty
FROM orders
Code
If you need a code on the https://github.com/udacity.
Now remove ORDER BY DATE_TRUNC('month',occurred_at)
in each line of the query that contains it in the SQL Explorer below. Evaluate your new query, compare it to the results in the SQL Explorer above, and answer the subsequent quiz questions.
SELECT id,
account_id,
standard_qty,
DATE_TRUNC('month', occurred_at) AS month,
DENSE_RANK() OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS dense_rank,
SUM(standard_qty) OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS sum_std_qty,
COUNT(standard_qty) OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS count_std_qty,
AVG(standard_qty) OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS avg_std_qty,
MIN(standard_qty) OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS min_std_qty,
MAX(standard_qty) OVER (PARTITION BY account_id ORDER BY DATE_TRUNC('month',occurred_at)) AS max_std_qty
FROM orders
Code
If you need a code on the https://github.com/udacity.
dense_rank
QUIZ QUESTION::
What is the value of dense_rank
in every row for the following account_id
values?
ANSWER CHOICES:
account_id |
dense_rank |
---|---|
1001 |
|
1011 |
|
1021 |
SOLUTION:
account_id |
dense_rank |
---|---|
1001 |
|
1011 |
|
1021 |
|
1001 |
|
1011 |
|
1021 |
|
1001 |
|
1011 |
|
1021 |
sum_std_qty
QUIZ QUESTION::
What is the value of sum_std_qty
in the first row for the following account_id
values?
ANSWER CHOICES:
account_id |
sum_std_qty |
---|---|
1001 |
|
1011 |
|
1021 |
SOLUTION:
account_id |
sum_std_qty |
---|---|
1011 |
|
1001 |
|
1021 |
Reflect
QUESTION:
What is happening when you omit the ORDER BY
clause when doing aggregates with window functions? Use the results from the queries above to guide your thoughts then jot these thoughts down in a few sentences in the text box below.
ANSWER:
Thank you. Continue to the next page to see our explanation.